![]() Un générateur de site statique qui casse des briques. VenC est tellement rapide qu'il enfreint le principe de causalité et produit de l'énergie surunitaire ! |
Les motifs contextuels sont les derniers motifs à être interprétés par VenC dans le processus de génération des pages. En effet, ces motifs sont "contextuels" au sens où leur fonctionnement dépend de choses comme le fil de publications que VenC traite, du numéro de la page courante ou de l'emplacement de fichier de la page ainsi généré dans l'arborescence du blog.
Les motifs contextuels sont interprétés autant de fois qu'il y a de pages pour chaque occurrence de l'un de ceux-là.
Ce motif permet de générer une liste de liens de pagination.
.:ForPages::length::string::separator:.
length
: définit la longueur de la liste.separator
: le texte servant de séparateur.string
: le texte à formater, dans lequel seront accessibles les valeurs des variables ci-dessous.Ce motif comporte les variables suivantes :
entry_id
: si le contexte le permet, cette variable contient l'identifiant de la publication associée à la page courante. Sinon, la variable est ignorée.entry_title
: si le contexte le permet, cette variable contient le titre de la publication associée à la page courante. Sinon, la variable est ignorée.page_number
: si le contexte le permet, cette variable contient le numéro de la page courante. Sinon, la variable est ignorée.path
: contient le chemin relatif de la page courante..:GetEntryContent:.
Ce pattern ne peut pas être utilisé dans un template, ni dans le corps d'une publication, cela provoquerait une erreur de récursion.
Ce pattern renvoie le contenu complet de la publication courante.
.:GetEntryPreview:.
Ce pattern ne peut pas être utilisé dans un template, ni dans le résumé d'une publication, cela provoquerait une erreur de récursion.
Ce pattern renvoie le résumé de la publication courante.
.:GetLastEntryTimestamp::time_format:.
Permet de récupérer la date formatée avec time_format
de la publication la plus récente dans le fil de publication courant.
.:GetNextPage::string:.
Permet de récupérer des informations sur la prochaine page, si elle existe.
string
: le texte à formater, depuis lequel seront accessibles les valeurs des variables ci-dessous.Ce motif comporte les variables suivantes :
entry_id
: si le contexte le permet, cette variable contient l'identifiant de la publication associée à la page suivante. Sinon, la variable est ignorée.entry_title
: si le contexte le permet, cette variable contient le titre de la publication associée à la page suivante. Sinon, la variable est ignorée.page_number
: si le contexte le permet, cette variable contient le numéro de la page suivante. Sinon, la variable est ignorée.path
: contient le chemin relatif de la page suivante, si elle existe.chapter
: si le contexte le permet, contient l'index du chapitre de la page suivante. Sinon, la variable est ignorée..:GetPreviousPage::string:.
Permet de récupérer des informations sur la page précédente, si elle existe.
string
: le texte à formater, depuis lequel seront accessibles les valeurs des variables ci-dessous.Ce motif possède les variables suivantes :
entry_id
: si le contexte le permet, cette variable contient l'identifiant de la publication associée à la page précédente. Sinon, la variable est ignorée.entry_title
: si le contexte le permet, cette variable contient le titre de la publication associée à la page précédente. Sinon, la variable est ignorée.page_number
: si le contexte le permet, cette variable contient le numéro de la page précédente. Sinon, la variable est ignorée.path
: contient le chemin relatif de la page précédente, si elle existe.chapter
: si le contexte le permet, contient l'index du chapitre de la page précédente. Sinon, la variable est ignorée..:GetRandomNumber::min_value::max_value::precision:.
Génère un nombre aléatoire compris entre min_value
et max_value
avec une précision décimale définie par precision
.
Par exemple, pour générer un nombre décimal compris entre zéro inclus et dix, avec au plus quatre chiffres après la virgule, nous pouvons utiliser :
.:GetRandomNumber::0::10::4:.
Pour générer un nombre entier compris entre zéro inclus et cent, nous pouvons utiliser :
.:GetRandomNumber::0::100::0:.
Enfin pour générer un nombre décimal, par exemple entre 12,25 inclus et 12,5, avec au plus 5 chiffres après la virgule, nous pouvons utiliser :
.:GetRandomNumber::12.25::12.5::5:.
.:GetRelativeLocation:.
Ce motif renvoie le chemin depuis la racine du blog vers le répertoire courant.
Par exemple, si la page courante qui est générée se trouve dans le répertoire :
blog/Categories/Cinema/Science-Fiction
Alors le motif renverra :
/Categories/Cinema/Science-Fiction
.:GetRelativeRoot:.
Ce motif renvoie le chemin relatif de la racine du blog.
Par exemple, si la page courante qui est générée se trouve dans le répertoire :
blog/Categories/Cinema/Science-Fiction :
Alors le motif renverra :
../../..
.:GetStyleSheets:.
VenC peut générer des feuilles de style CSS. Ces fichiers peuvent être inclus dans votre thème avec le motif GetStyleSheets
.
Par exemple, pour la documentation que vous êtes en train de lire, l'utilisation de ce motif produirait le code suivant :
<link rel="stylesheet" href="../venc_source_Text.css" type="text/css" /> <link rel="stylesheet" href="../venc_source_html.css" type="text/css" /> <link rel="stylesheet" href="../venc_source_HTML.css" type="text/css" /> <link rel="stylesheet" href="../venc_source_CSS.css" type="text/css" />
.:GetThreadName[::string1][::string2]:.
Ce motif permet de récupérer le nom du fil de publications courant.
Par exemple, si la page courante est générée dans un fil de publications
de type categorie
et que ladite catégorie s'appelle "Histoire de l'informatique",
alors GetThreadName
permet de récupérer cette valeur dans une chaîne de caractères
formatée correspondant à l'argument string1
. Si au contraire, le fil de publications
n'a pas de nom alors c'est string2
qui est renvoyée, par exemple quand VenC traite le fil de publications principal.
En fait, chaque fil de publications a un nom qui lui est attribué, sauf pour le fil de publications principal.
string1
: premier argument du motif, c'est celui qui est renvoyé si le fil de publications a un nom. Pour accéder au nom du fil de publications dans l'argument, il faut utiliser la variable value
. Si c'est cet argument qui doit être utilisé par le motif et qu'il est manquant, le motif renvoie simplement le nom du fil de publications, sans formatage particuler.string2
: second argument du motif, c'est celui qui est renvoyé si le fil de publications n'a pas de nom. Cet argument n'a pas de variable contextuelle. Si c'est cet argument qui doit être utilisé par le motif et qu'il est manquant, le motif est ignoré..:IfInArchives::string1[::string2]:.
La fonction teste si la page courante est générée dans le fil des archives.
string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.À noter que ce motif n'a pas de variable.
.:IfInCategories::string1[::string2]:.
La fonction teste si la page courante est générée dans le fil des catégories.
string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.À noter que ce motif n'a pas de variable.
.:IfInEntryID::id::string1[::string2]:.
La fonction teste si l'identifiant de la publication correspond à celui spécifié en argument.
id
: un nombre entier différent de 0 identifiant une publication.string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.Ce motif n'a pas de variable.
.:IfInFeed::string1[::string2]:.
Certains éléments contenus dans une publication ne peuvent pas être présents dans le flux RSS/Atom sous peine que celui-ci ne soit pas valide et ne s'affiche pas correctement dans les lecteurs de flux RSS/Atom.
Vous pouvez utiliser IfInFeed
pour remplacer un certain type de contenus par un autre, qui lui serait valide dans un flux RSS/Atom.
En outre, la fonction teste si le fil de publications courant est un flux RSS ou Atom.
string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition n'est pas remplie. Si le second argument est absent, le motif est ignoré et supprimé.Ce motif n'a pas de variable.
.:IfInFirstPage::string1[::string2]:.
La fonction teste si le numéro de page courant correspond à la première page du fil de publications courant. Si la page est générée dans le contexte d'une page individuelle de publication ou d'un chapitre, le test échoue.
string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.Ce motif n'a pas de variable.
.:IfInLastPage::string1[::string2]:.
La fonction teste si le numéro de page courant correspond à la dernière page du fil de publications courant. Si la page est générée dans le contexte d'une page individuelle de publication ou d'un chapitre, le test échoue.
string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.Ce motif n'a pas de variable.
.:IfInMainThread::string1[::string2]:.
La fonction teste si la page courante est générée dans le fil de publications principal.
string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.Ce motif n'a pas de variable.
.:IfInThreadAndHasFeeds::string1[::string2]:.
La fonction teste si le fil de publications courant peut produire un flux Atom et/ou RSS. Seuls les catégories et le fil principal valident la condition.
string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition n'est pas remplie. Si le second argument est absent, le motif est ignoré et supprimé.Ce motif n'a pas de variable.
.:IfInThreadAndHasFeeds::string1[::string2]:.
La fonction teste si le fil de publications courant peut produire un flux Atom et/ou RSS. Seuls les catégories et le fil principal valident la condition.
string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition n'est pas remplie. Si le second argument est absent, le motif est ignoré et supprimé.Ce motif n'a pas de variable.
.:IfPages::string1[::string2]:.
La fonction teste si le fil de publications courant a plus d'une page.
string1
: texte retourné si la condition est remplie.string2
: texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.Ce motif n'a pas de variable.
.:PreviewIfInThreadElseContent:.
Ce pattern ne peut être utilisé que dans entry.html
.
Il renvoie le résumé de la publication courante si VenC génère la page dans un fil de publications. Sinon, VenC renvoie le contenu complet de la publication courante.